package com.deliccio.dao.impl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.stereotype.Repository;

import com.deliccio.dao.PedidoMesaDAO;
import com.deliccio.entitys.Mesa;
import com.deliccio.entitys.PedidoMesa;
import com.deliccio.entitys.Pedidos;
@Repository("PedidoMesaDAO")
public class PedidoMesaDAOImpl implements PedidoMesaDAO{
	
	protected EntityManager em;

    @PersistenceContext
    public void setEm(EntityManager em){	  	
		this.em=em;
	}
    
	@Override
	public void guardar(PedidoMesa pedMe){
		em.persist(pedMe);		
	}
		
	public PedidoMesa get(Integer id){		
			return (PedidoMesa) em.find(PedidoMesa.class,id);
		
	}

	@Override
	public List<PedidoMesa> obtenerMesasPorPedido(Pedidos p){		
		Query q = em.createQuery("Select pm from PedidoMesa pm where pm.pedidoMesaPK.idpedido=:pedido ");
		q.setParameter("pedido",p.getId());		
		return q.getResultList();
	}

	@Override
	public List<Mesa> obtenerMesasPorUsuario(int idUsuario){
		Query q = em.createQuery("Select m from Mesa m, PedidoMesa pm , Pedidos p where pm.pedidoMesaPK.idpedido=p.id and pm.pedidoMesaPK.idmesa=m.id and p.usuario.id=:usuario ");
		q.setParameter("usuario",idUsuario);		
		return q.getResultList();
	}
}
